home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
wstype
/
source
/
icn.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-18
|
6KB
|
193 lines
/*** [icn.c]
*
* アイコン各種 (C)ささがわ
*
* For GNU C Compiler (GCC) Version 1.39
*
***/
#include "graph.h"
#include <mos.h>
extern int PAL_Black;
extern int SROM_mos(int, int, int, int);
void ICN_drive(int no, int x, int y) {
static const unsigned char icn[][48] = { {
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0xff, 0x80, 0x7f, 0x3f, 0xff, 0xfe, 0x7f,
0x00, 0xff, 0x80, 0x7f, 0x00, 0xff, 0x80, 0x7f,
0x00, 0x00, 0x1c, 0x7f, 0x0c, 0x00, 0x1c, 0x7f,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f
}, {
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x78, 0x7f,
0x0f, 0xc0, 0x78, 0x7f, 0x00, 0x00, 0x78, 0x7f,
0x0f, 0xc0, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x0f, 0xc0, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f
}, {
0x00, 0x00, 0x00, 0x7f, 0x01, 0xff, 0xc0, 0x7f,
0x0e, 0x00, 0x38, 0x7f, 0x30, 0x00, 0x06, 0x7f,
0x40, 0x7f, 0x01, 0x7f, 0x40, 0x80, 0x81, 0x7f,
0x40, 0x80, 0x95, 0x7f, 0x40, 0x7f, 0x29, 0x7f,
0x30, 0x00, 0x06, 0x7f, 0x0e, 0x00, 0x38, 0x7f,
0x01, 0xff, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x7f
}, {
0x00, 0x00, 0x00, 0x7f, 0x12, 0x49, 0x24, 0x7f,
0x3f, 0xff, 0xfe, 0x7f, 0x20, 0x00, 0x02, 0x7f,
0x20, 0x7f, 0x02, 0x7f, 0x30, 0x41, 0x02, 0x7f,
0x30, 0x41, 0x02, 0x7f, 0x20, 0x7f, 0x02, 0x7f,
0x20, 0x00, 0x02, 0x7f, 0x3f, 0xff, 0xfe, 0x7f,
0x12, 0x49, 0x24, 0x7f, 0x00, 0x00, 0x00, 0x7f
}
};
if (no < 0 || 3 < no)
return;
EGB_putC(0, icn[no], x, y, x + 24, y + 11, PAL_Black);
}
void ICN_ya(int no, int x, int y) {
static const unsigned char icn[][26] = { {
0x00, 0x07, 0x00, 0x07, 0x02, 0x07, 0x07, 0x07,
0x0f, 0x87, 0x1f, 0xc7, 0x3f, 0xe7, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x07,
0x00, 0x07
}, {
0x00, 0x07, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x3f, 0xe7, 0x1f, 0xc7,
0x0f, 0x87, 0x07, 0x07, 0x02, 0x07, 0x00, 0x07,
0x00, 0x07
}, {
0x00, 0x07, 0x00, 0x07, 0x02, 0x07, 0x06, 0x07,
0x0e, 0x07, 0x1f, 0xe7, 0x3f, 0xe7, 0x1f, 0xe7,
0x0e, 0x07, 0x06, 0x07, 0x02, 0x07, 0x00, 0x07,
0x00, 0x07
}, {
0x00, 0x07, 0x00, 0x07, 0x02, 0x07, 0x03, 0x07,
0x03, 0x87, 0x3f, 0xc7, 0x3f, 0xe7, 0x3f, 0xc7,
0x03, 0x87, 0x03, 0x07, 0x02, 0x07, 0x00, 0x07,
0x00, 0x07
}
};
if (no < 0 || 3 < no)
return;
EGB_putC(1, icn[no], x, y, x + 12, y + 12, PAL_Black);
}
void ICN_file(int no, int x, int y) {
static const unsigned char icn[][64] = { {
0x0e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
0x31, 0x80, 0x00, 0x00, 0x60, 0x81, 0x80, 0x00,
0x31, 0x83, 0xc0, 0x00, 0x1b, 0x86, 0x78, 0x00,
0x0e, 0xec, 0x28, 0x00, 0x00, 0x38, 0x38, 0x00,
0x38, 0x7e, 0x00, 0x00, 0x28, 0xc3, 0xe0, 0x00,
0x39, 0x86, 0x30, 0x00, 0x0f, 0x04, 0x90, 0x00,
0x06, 0x05, 0x30, 0x00, 0x00, 0x04, 0xe0, 0x00,
0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0xf2, 0xa0
}, {
0x60, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
0x43, 0x80, 0x00, 0x00, 0x40, 0x7f, 0xff, 0xe0,
0x40, 0x20, 0x00, 0x20, 0x40, 0x2e, 0x00, 0x20,
0x40, 0x29, 0x00, 0x20, 0x40, 0x29, 0x70, 0x20,
0x40, 0x29, 0x20, 0x20, 0x40, 0x2e, 0x27, 0x20,
0x40, 0x20, 0x24, 0xa0, 0x40, 0x20, 0x77, 0x20,
0x60, 0x20, 0x05, 0x20, 0x3c, 0x20, 0x04, 0xa0,
0x57, 0xa0, 0x00, 0x20, 0x2a, 0xff, 0xff, 0xe0
}, {
0x7f, 0xff, 0xfe, 0x00, 0x40, 0x00, 0x03, 0x00,
0x40, 0x00, 0x02, 0x80, 0x40, 0x00, 0x02, 0x40,
0x4f, 0xfe, 0x03, 0xe0, 0x40, 0x00, 0x00, 0x20,
0x40, 0x00, 0x00, 0x20, 0x40, 0x00, 0x1c, 0x20,
0x4f, 0xfe, 0x22, 0x20, 0x40, 0x00, 0x41, 0x20,
0x40, 0x00, 0x41, 0x20, 0x40, 0x00, 0x41, 0x20,
0x4f, 0xfe, 0x22, 0x20, 0x40, 0x00, 0x1c, 0x20,
0x40, 0x00, 0x00, 0x20, 0x7f, 0xff, 0xff, 0xe0
}
};
if (no < 0 || 2 < no)
return;
EGB_putC(1, icn[no], x, y, x + 31, y + 15, PAL_Black);
}
void ICN_opt(int no, int x, int y) {
static const unsigned char icn[][32] = { {
0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0x80, 0x11,
0x80, 0x11, 0x80, 0x11,
0x80, 0x11, 0x80, 0x11,
0x80, 0x15, 0xff, 0xf5,
0x80, 0x05, 0x80, 0x3d,
0x80, 0x01, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00
}
};
if (no < 0 || 0 < no)
return;
EGB_putC(1, icn[no], x, y, x + 15, y + 15, PAL_Black);
}
void ICN_tree(int x, int y) {
static const unsigned char icn[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00,
0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xc0, 0x00,
0x00, 0x07, 0xe0, 0x00, 0x00, 0x03, 0xc0, 0x00,
0x00, 0x07, 0xe0, 0x00, 0x00, 0x0f, 0xf0, 0x00,
0x00, 0x1f, 0xb8, 0x00, 0x00, 0x7f, 0x5e, 0x00,
0x00, 0x0f, 0xb0, 0x00, 0x00, 0x0f, 0xf0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3b, 0xfc, 0x00,
0x00, 0x75, 0xce, 0x00, 0x00, 0xfb, 0xcf, 0x00,
0x07, 0xff, 0xff, 0xc0, 0x03, 0xfc, 0xff, 0x80,
0x00, 0x3c, 0xfc, 0x00, 0x00, 0x7f, 0xce, 0x00,
0x00, 0xdf, 0x87, 0x00, 0x01, 0xaf, 0x87, 0x80,
0x1f, 0xdf, 0xcf, 0xf8, 0x07, 0xff, 0xff, 0xe0,
0x01, 0xff, 0xff, 0x80, 0x00, 0x1f, 0xf8, 0x00,
0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
};
EGB_putC(0, icn, x, y, x + 31, y + 31, PAL_Black);
}
void ICN_mos(int no) {
if (no < 0 || 4 < no)
return;
switch (no) {
case 1:
SROM_mos(82, 15, 15, 15);
break;
case 2:
SROM_mos(87, 1, 1, 15);
break;
case 3:
SROM_mos(84, 9, 9, 15);
break;
case 4:
SROM_mos(85, 4, 27, 15);
break;
default:
SROM_mos(81, 1, 1, 15);
break;
}
}
void ICN_put(int no, int x, int y, int c) {
char par[14];
EGB_color(EGB_work, EGB_COL_FORE, c);
*((void **)par) = (void *)(0x28000 + 256 * (no - 1));
*((unsigned short *)(par + 4)) = 0x0108;
*((short *)(par + 6)) = x;
*((short *)(par + 8)) = y;
*((short *)(par + 10)) = x + 31;
*((short *)(par + 12)) = y + 31;
EGB_putBlockColor(EGB_work, 0, par);
}